void main(){

  // 数据类型： 
  // num : int double
  // String
  // List
  // Map
  // bool
  // dart中只有null，没有undefined

  // var定义变量不要求数据类型，泛型
  // var会对数据类型自动识别, 当定义变量与赋值同时进行时，会自动对数据类型进行识别
  var a = '';
  // a = 10;
  a = "123";
  print(a);

  // 声明常量： var const final
  // 相同点： 一旦声明，不能再赋值。声明和赋值必须同时进行
  // 不同点： final声明之后，可以修改，const声明之后不能修改
  // const要求更加严格，const定义的是编译器的常量，不能是运行结果，final就二者都行

  // final 
  // final b = {"name":"zf"};
  // // b = 10;
  // b["name"] = "zhufeng";
  // print(b);

  // const
  // const c= {"name":"zf"};
  // c["name"] = "zhufeng";
  // print(c);
  // c = 10;

  // final n1 = sum(1,2);
  // const n2 = sum(1,2);

// 对象/map/键值对  取值必须用中括号

  // ?? 非空判断
  // var a = "Dart";
  // var b = "Java";
  // var c = a??b;  // 前面的值不为空，取前者，前面值为空，取后者。

// 变量命名规范： 数字、字符串、下划线、$ 来组成，不能以数字开头，区分大小写，不能使用关键字和保留字
// 下划线开头的话代表私有（慎用）


}

sum(m,n)=>m+n;